package SQL;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.mail.Session;


import usuaris.Alumne;
import usuaris.Empresa;
import usuaris.Usuari;

public class registre_usuaris {
	
	Conect conector = new Conect();
	Connection con= conector.conect(); 

	public void registre_empresa(Empresa e){
		//crear objeto conect
		Conect conector = new Conect();
		Connection con= conector.conect(); 
		try{
			Statement stmt = con.createStatement();
			String sql = "SELECT cif FROM empresa WHERE cif='"+e.getCif()+"'";
			
			ResultSet result=stmt.executeQuery(sql);
		
			if(!result.next()){
				try{
					sql = "INSERT INTO empresa(cif, nom, dades_contacte, email, telefono, descripcio, dades_ubicacio, clau) VALUES ( '"
							+e.getCif()+"','"+e.getNom()+"','"+e.getDadesContacte()+"','" + e.getEmail()+"','"+e.getTelefon()+"','"+e.getDescripcio()+"','"+e.getDadesUbicacio()+"','" +e.getClau()+"')";    
					stmt.executeUpdate(sql);
				}catch (Exception no_registered){
					System.out.println("No s'ha pogut crear l'usuari" + no_registered);
				}
			}else{
				System.out.println("Aquest usuari ja existeix");
			}
		}catch(Exception Error_Select){
			System.out.println("No s'ha pogut fer el Select");
		}
	}
	
	/*ALUMNO */
	public void registre_alumno(Alumne a){
		//crear objeto conect
		Conect conector = new Conect();
		Connection con= conector.conect(); 
		try{
			Statement stmt = con.createStatement();
			String sql = "SELECT dni FROM alumno WHERE dni='"+a.getDni()+"'";
			
			ResultSet result=stmt.executeQuery(sql);
			
			if(!result.next()){
				try{
					sql = "INSERT INTO alumno(dni, nombre, apellidos, fecha_de_nacimiento, email, clau, telefono, datos_academicos) VALUES ( '"
							+a.getDni()+"','"+a.getNom()+"','"+a.getCognoms()+"','"+a.getDataNaixement()+"','"+a.getEmail()+"','"+a.getClau()+"','"+a.getTelefon()+"','"+a.getDadesAcademiques()+"')";                    
					stmt.executeUpdate(sql);
					System.out.println("Usuari creat");
				}catch (Exception no_registered){
					System.out.println("No s'ha pogut crear l'usuari" + no_registered);
				}
			}else{
				System.out.println("Aquest usuari ja existeix");
			}
		}catch(Exception error){
			System.out.println("Error amb la BD");
		}
	}

	//Si no existeix l'usuari retornara true
	//De momento solo verifica que exista el usuario
	public boolean esUsuari(String identificador){
		//crear objeto conect
		Conect conector = new Conect();
		Connection con= conector.conect(); 
		
		try{
		Statement stmt = con.createStatement();
		String sql = "SELECT cif FROM empresa WHERE cif='"+identificador+"'";
		
		ResultSet result=stmt.executeQuery(sql);
		
		if(!result.next()){
			sql = "SELECT dni FROM alumno WHERE dni='"+identificador+"'";
			ResultSet result2=stmt.executeQuery(sql);
			if(!result2.next()){
				return true;
			}else{
				return false;
			}
		}else{
			return false;
		}
		}catch(Exception error){
			System.out.println("Error");
		}
			return false;
	}
	
	public boolean canviaDadesAlumne(Alumne a, String documento){
		Conect conector = new Conect();
		Connection con= conector.conect(); 
		System.out.println("dniAlmuno"+a.getDadesAcademiques());
			String sql="UPDATE alumno SET telefono='"+a.getTelefon()+"', email='"+a.getEmail()+"', datos_academicos='"+a.getDadesAcademiques()+"', clau='"+a.getClau()+"' where dni='"+documento+"'"; 
		try{
			//crear objeto conect
			Statement stmt = con.createStatement();
			stmt.executeUpdate(sql);
			System.out.println("dades canviades");
			return true;
		}catch(Exception e){
			System.out.println(e);
			return false;
		}
	}
	
	public boolean canviaDadesEmpresa(Empresa e, String documento){
			String sql = "UPDATE empresa SET dades_contacte='"+e.getDadesContacte()+"', email='"+e.getEmail()+"', telefono='"+e.getTelefon()+"', descripcio='"+e.getDescripcio()+"', dades_ubicacio='"+e.getDadesUbicacio()+"', clau='"+e.getClau()+"' where cif='"+documento+"'";   
		
		System.out.println(sql);	
		try{
			//crear objeto conect
			Statement stmt = con.createStatement();
			stmt.executeUpdate(sql);
			System.out.println("dades canviades");
			return true;
		}catch(Exception ex){
			System.out.println(ex);
			return false;
		}
	}
	
}
